package com.example.ordersystem.util;

import com.example.ordersystem.entity.vo.ResultMessage;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service;

/**
 * 返回结果工具类
 */
@Service
public class ResultUtil<T> {
    /**
     * 抽象类，存放结果
     */
    private final ResultMessage<T> resultMessage;

    public ResultUtil() {
        resultMessage=new ResultMessage<>();
        resultMessage.setSuccess(true);
        resultMessage.setMessage("success");
    }


    /**
     * 抽象静态方法，返回结果集
     * @param t 范型
     * @return 消息
     */
    public  ResultMessage<T> data(T t) {
        this.resultMessage.setSuccess(true);
        this.resultMessage.setMessage("success");
        this.resultMessage.setResult(t);
        return this.resultMessage;
    }

    /**
     * 返回成功
     * @return 消息
     */
    public ResultMessage<T> success(String message) {
        this.resultMessage.setSuccess(true);
        this.resultMessage.setResult(null);
        this.resultMessage.setMessage(message);
        return this.resultMessage;
    }


    /**
     * 返回错误
     * @return 消息
     */
    public ResultMessage<T> error(String message) {
        this.resultMessage.setSuccess(false);
        this.resultMessage.setResult(null);
        this.resultMessage.setMessage(message);
        return this.resultMessage;
    }

}
